package org.xbs.demo1.config;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.xbs.demo1.interceptor.Interceptor;

@Configuration//告诉spring这是一个配置类（这个注解本身还包括了@component）
//这个控制类是为拦截器服务默认要实现接口WebMvcConfigurer，这个接口中都是空方法
//这个接口是spring提供的让我们自定义springmvc配置的接口，拦截器的相关配置也在这个接口里
public class WebConfig implements WebMvcConfigurer {
    @Autowired
    private Interceptor interceptor;
    @Override
    //InterceptorRegistry这个类主要用于注册和管理拦截器
    //由前端来实现根据不同的权限开放不同的页面
    public void addInterceptors(InterceptorRegistry registry) {
        //注册拦截器
        registry.addInterceptor(interceptor).addPathPatterns("/**");//addInterceptor()参数为一个拦截器的实例，我们之前创建过了，addPathPatterns（）参数为我们要拦截的路径
    }
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowCredentials(true)
                .allowedOriginPatterns("*")
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
                .allowedHeaders("*");
    }
}
